home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / mxcode / ampegsrc / encodsrc / fixes.txt < prev    next >
Text File  |  1993-10-15  |  11KB  |  442 lines

  1.     WEND
  2.             MOUSEEXIT
  3.             VIDEOMODESET VMODE
  4.             END
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.                                                                          86
  46.  
  47.  
  48.  
  49.  
  50.  
  51.           MOUSECURSORDEFAULT
  52.  
  53.             PROTOTYPE
  54.  
  55.             SUB MOUSECURSORDEFAULT ()
  56.  
  57.             INPUT
  58.  
  59.             no input parameters
  60.  
  61.             OUTPUT
  62.  
  63.             no value returned
  64.  
  65.             USAGE
  66.  
  67.             MOUSECURSORDEFAULT defines the mouse cursor to be a small
  68.        ,K$╖┼╘╤░XQ)σ┤ö≡÷┴─┤àñT┘,╘¬àñX9╘⌠àñ\9╘UÜ╢≤`9╘4a╘d9╘UTa╘h9╘ta╘l9╘Uöa╘p9╘┤a╘t┘PT±x┴îÇ╖0▓ïα│ÅαU┤ôα╡ùα╢¢α╖úΓ╘pǺΓ╕¡αë ╚┴πì°sKÉφb<$⌡▌ë     φë φë I1φë  Eφë $YφÆë (mφë ,üφë 0$òφë á⌐φë ñ╜φë I¿╤φë ¼σφë ░∙φÆë 4²ë ┤!²ë ╕$5²ë ╝I²ë └]²ë ⌐8q²ë <àⁿΦiǬ∙PÖÇ ¥Ç
  69. ⁿ░╨â@%8@ΓΦá╝╤░≡cÑÅ*$░╕≡ż≡τ╥m¿⌡ε    ╨@#µ≈$âh$âαra╨à`¥è∩Ç%Ç +─▀ TîcOî∩â°1<@  [$¿Ç¼ MMl·0ƒ Y¼─!%6a▐è ¥ì ßá+?±  P<îaTTV ╪iÇ¡≥░ `_ñ»%Çá᪠P█º»ε`éa∙É%H«┴íA%Gár∙É
  70. iw∙Éiφ`╧≥≡╤Çmⁿ▒
  71. ]ÆAáσw7░⌡∩    $·╟Ç√É&^`  ┐ $ⁿ  $■ $╒ nk$J-ÉQ1£PéBù »0αQ/Ñ4╜£░ºP≈Ñ4Ç⌡$(ª▀$@C]Æé≈└╕_SÇçÑ4=iÉ⌠ä╣<_np@Ñ45ò▒Y3ü¼Qí░.i>╠@5+┴╙É╛╙$@ #┴@«╦
  72. $╤
  73. #@Ñú4,p&e÷ü¼_ÇQºÑ4òQ  ü@;¡_áQ@e╠≥@mp!┤a╘O░√`Pñź ÇT°8ÿ!¼Åñ$½╙"q¿ PñCÇ¿α√└╥░eT"ß<p°%Pæ(╧%pδ¥/OêW0Ǽbφ φ B@[â¼8â≥µ≤(    ¿⌡%(Ç∩áTÿp+ óÜ▓0!Σ±(1±░┤ÖÇD└D0Å╡`   $ «îO@╧1
  74. a╝╤j-0ñ│`@╖bΦaT1═⌠╝╤Σ²¼±,1öíî9lÿ28ÇÅ`Γî¿P²$,N0┴O0a╫δ≤0σú`°î╖#0δ≡└X▄1»Σî(▒¥Ç█Ñ"qá√1CÇú╟╨º Å
  75. FT Θ²î└1ÇY0    w ²à░$@AÅ`╦Φ¼╘`▄1A  }┐Ç*5 ΩSδδî`¼îaδæ¼î5 1¿⌡Ω╜⌠ ¼¥╬ü└Qî1S╛≤î9╨iÇ,∙PU(}Ç$üÇ àÇ`σìÇ`QαÜBO$%ÿÇ╧"$Ç«Ç]É.┬\`%WÉ$  W0 ÄâO0]αG┬ur╩░£▒Q¢ú╔Ç≡°s?`X0╘`@ µWâ@╣aá εdq`¥9?Ç&+o0µyÄΣAÅuV(7P╬±@IdQ╕@Å┤@;Ç▓?Çò│CÇ┤╟╨╡KÇÄ30ⁿφ° ó╬ì+]Ä╦≡     Mö╝σ ²y5<!└▀óâ╝É3~mp    $<╛≤9Æ-2ⁿ≡@T,╞Σa,)Pæ└¥#¼╪Q┤S(¼@Aîa≡╤@Ö²±⌠KëD─┴▒▀0╨Ñ$╩-0 ╨ê*╙▓edm`î=3Kß-10è=≥≤²└£mîjy ÿe²ⁿ╨i╕e▓ΣmαÖ╢C%Ç*ê*0 EátQZ`mÄLP%    °üⁿªüNQ∙  T¿<qtWΩc z░ÅÇñΩçǪçÇ«;└<┐á¼¥. á?<Σscî)áí := 0;
  76.       end;
  77.     end;
  78.   end;
  79.   WaitToGo;
  80. end; { UserLineStylePlay }
  81.  
  82.  
  83. procedure SayGoodbye;
  84. { Say goodbye and then exit the program }
  85. var
  86.   ViewInfo : ViewPortType;
  87. begin
  88.   MainWindow('');
  89.   GetViewSettings(ViewInfo);
  90.   SetTextStyle(TriplexFont, HorizDir, 4);
  91.   SetTextJustify(CenterText, CenterText);
  92.   with ViewInfo do
  93.     OutTextXY((x2-x1) div 2, (y2-y1) div 2, 'That''s all folks!');
  94.   StatusLine('Press any key to quit...');
  95.   repeat until KeyPressed;
  96. end; { SayGoodbye }
  97.  
  98.  
  99. PROCEDURE SelectMode;
  100. VAR
  101.     choice1,choice2     : CHAR;
  102.    xsize,ysize            : WORD;
  103. BEGIN
  104.     (* Let's select a mode *)
  105.     ClrScr;
  106.     WriteLn('VESADEMO:');
  107.     WriteLn('1. 256 colors');
  108.     WriteLn('2. 32768 colors');
  109.     WriteLn('3. 65536 colors');
  110.     WriteLn('4. 16777216 colors');
  111.     WriteLn('Q uit');
  112.     WriteLn;
  113.     Write('Your choice: ');
  114.     REPEAT
  115.         ReadLn(choice1);
  116.       IF choice1 <> '1' THEN BEGIN
  117.           WriteLn('Sorry !');
  118.          WriteLn('This demo wasn''t written for more as 256 colors !');
  119.          WriteLn('You would only get a limited impression of the Hi-& TrueColor modes...');
  120.          WriteLn('Switching to 256 colors.');
  121.          choice1 := '1';
  122.       END;
  123.     UNTIL choice1 IN ['1'..'4','q'];
  124.     IF choice1 = 'q' THEN Halt;
  125.  
  126.     WriteLn;
  127.     WriteLn;
  128.     WriteLn('a. 320x200');
  129.     WriteLn('b. 640x480');
  130.     WriteLn('c. 800x600');
  131.     WriteLn('d. 1024x768');
  132.     WriteLn('e. 1280x1024');
  133.     WriteLn('Q uit');
  134.     WriteLn;
  135.     Write('Your choice: ');
  136.     REPEAT
  137.         ReadLn(choice2);
  138.     UNTIL choice2 IN ['a'..'e','q'];
  139.     IF choice2 = 'q' THEN Halt;
  140.  
  141.     CASE choice2 OF
  142.         'a' : BEGIN
  143.             xsize := 320;
  144.             ysize := 200;
  145.         END;
  146.         'b' : BEGIN
  147.             xsize := 640;
  148.             ysize := 480;
  149.         END;
  150.         'c' : BEGIN
  151.             xsize := 800;
  152.             ysize := 600;
  153.         END;
  154.         'd' : BEGIN
  155.             xsize := 1024;
  156.             ysize := 768;
  157.         END;
  158.         'e' : BEGIN
  159.             xsize := 1280;
  160.             ysize := 1024;
  161.         END;
  162.     END;
  163.     CASE choice1 OF
  164.         '1' : mode := FindVesaMode(xsize,ysize,8);
  165.         '2' : mode := FindVesaMode(xsize,ysize,15);
  166.         '3' : mode := FindVesaMode(xsize,ysize,16);
  167.         '4' : mode := FindVesaMode(xsize,ysize,24);
  168.     END;
  169.     IF mode = 0 THEN BEGIN
  170.         WriteLn('No such mode could be found !');
  171.         WriteLn('Switching to to 320x200.');
  172.         ReadKey;
  173.         mode := V320x200x256;
  174.     END;
  175. END;
  176.  
  177. begin { program body }
  178.   SelectMode;
  179.   Initialize;
  180.   ReportStatus;
  181.  
  182. {  AspectRatioPlay; }
  183.   FillEllipsePlay;
  184.   SectorPlay;
  185.   WriteModePlay;
  186.  
  187.   ColorPlay;
  188.   { PalettePlay only intended to work on these drivers: }
  189.   if (GraphDriver = EGA) or
  190.       (GraphDriver = EGA64) or
  191.       (GraphDriver = VGA) then
  192.      PalettePlay;
  193.   PutPixelPlay;
  194. {  PutImagePlay; }
  195.   RandBarPlay;
  196.   BarPlay;
  197.   Bar3DPlay;
  198.   ArcPlay;
  199.   CirclePlay;
  200.   PiePlay;
  201.   LineToPlay;
  202.   LineRelPlay;
  203. {  LineStylePlay; }
  204. {  UserLineStylePlay; }
  205.   TextDump;
  206.   TextPlay;
  207.   CrtModePlay;
  208.   FillStylePlay;
  209.   FillPatternPlay;
  210.   PolyPlay;
  211.   SayGoodbye;
  212. {  CloseGraph; }
  213.   CloseVesa;
  214. end.
  215. ***************************************************
  216.     '* SHOW D2ROTATE (ABOUT THE ORIGIN)
  217.     '****************************************************************∞╥≤c≤*φè#^│v/╒:j═φ0t+l▓ô"¬"g└≡?%ªêΣ│H╫½╫╜├¿U'╒⌐⌡ ßV?╩¬ujOΦçEZ1∞▐! ▄B╛Σ8║æ]1GlNÜ┐q▌▓;ô$ΦzE<cª*bEô#ä╧ñÅ"∩─LrdaÖ ╠º╫a^¥£å╬1~)@ëÖMδ╫0═6DäFê¬Çv┼ß╨kæpτ╪É)}ª 1w3╤╧ü⌡¥╓h▓╣≈ïÅaÑ[TⁿHqªÉ╝DKÄ─Y-∞tT╤Θ╨º╟╪.*ÇI9lΦ≈{πτcσ$τπßoFr╪╨∩┼╞╟;O2■e²LÜ4^N|╪½ÅO?╔°FOz`╟╟╟'<>>π$πΘù6·Xgî╖│°oîδπGƒd╝▀░?■╪╔_9L ⌡ôⁿq'æO▀ƒn4╔▀╚▄┼3pτ.òO°·}÷╕ⁿ±'æO?ít│!√8ßÑ≤/┐╣p┼≥┘E╦Vox╕cΦé5╟╚º╙$?√$≥ΘZεsî≡åìΓpKù¢ïß X╥ 9╞≈\µk┤O¥_ 5Üö\≤éÄ┌╤A[╤ÿáï┼éNⁿÅu16    g,%hc╙╨cD╨Vï┘R¢öKñR;8εáΣ╢╪ós╤π╡á└èxgzPÄMú╫yαºÉ+σJ¢i+▓â3╥    ═Ñ╙î^ºG▓█πérφçs %#(╗⌠?┼%u8≡6+QÉ))ò)Afw≈╣╪)B&4░åLXV:δät@Å.;5Φf╢Ät┐ΣJ╫─U8úÇ╟éö£╕p╔┴⌠vg╨╬╥é÷╪╣┬ΓI.ç≡^v╤ZΦÇ& ╒┌6ñô6XßNè╡╬E₧Ñ
  218. kIº╠▄A+╣╥éb²tæ-Y¡½αÑa═uuîÇ╢αêvhuª╡SÅ┤vèùú¥F;p<d⌐/F─d█éT%▓KΦû=q■öI┐ ┐╠6S$▒÷╚ENΩ¥Fû9╔┌R'╝ ╧φ└?g┬j▓0═/b╖₧─mûé╢┌»ÿÄë/·<éò■░╤╟╢├Xσ:╥P3Θ"╬Læsφ░┌öSö!╗¿*mN£WΣÇ£┤~#╗ææ≥RΩóh:à▌.æ≈╕▌v£äàd▒à╒├=░╖π║$howeg*╬    6ù▄ƒô╕φ░Ö╢qΘD>(w@úKεHÆ╛öúΣU
  219. éÜR╔╤W▄èê 2M%ó.▓SNÖA1ùJE╢║l]▓¿>\%└Å4ßO▄£â⌐& ê/)8vSP▀▓ôⁿææ√ü√ÑÄa⌠â╚4S╓╟P- ?Σá╕▓Næ*q╡UΘ▓≈^ñ·I.rúR&$Y^╚%è≡B┌≈Ceat
  220.     Color := RandColor;
  221.     SetColor(Color);
  222.     SetFillStyle(Random(CloseDotFill)+1, Color);
  223.     Bar3D(Random(MaxWidth), Random(MaxHeight),
  224.           Random(MaxWidth), Random(MaxHeight), 0, TopOff);
  225.   until KeyPressed;
  226.   WaitToGo;
  227. end; { RandBarPlay }
  228.  
  229. procedure ArcPlay;
  230. { Draw random arcs on the screen }
  231. var
  232.   MaxRadius : word;
  233.   EndAngle : word;
  234.   ArcInfo : ArcCoordsType;
  235. begin
  236.   MainWindow('Arc / GetArcCoords demonstration');
  237.   StatusLine('Esc aborts or press a key');
  238.   MaxRadius := MaxY div 10;
  239.   repeat
  240.     SetColor(RandColor);
  241.     EndAngle := Random(360);
  242.     SetLineStyle(SolidLn, 0, NormWidth);
  243.     Arc(Random(MaxX), Random(MaxY), Random(EndAngle), EndAngle, Random(MaxRadius));
  244.     GetArcCoords(ArcInfo);
  245.     with ArcInfo do
  246.     begin
  247.       Line(X, Y, XStart, YStart);
  248.       Line(X, Y, Xend, Yend);
  249.     end;
  250.   until KeyPressed;
  251.   WaitToGo;
  252. end; { ArcPlay }
  253.  
  254. procedure PutPixelPlay;
  255. { Demonstrate the PutPixel and GetPixel commands }
  256. const
  257.   Seed   = 1962; { A seed for the random number generator }
  258.   NumPts = 2000; { The number of pixels plotted }
  259.   Esc    = #27;
  260. var
  261.   I : word;
  262.   X, Y, Color : word;
  263.   XMax, YMax  : integer;
  264.   ViewInfo    : ViewPortType;
  265. begin
  266.   MainWindow('PutPixel / GetPixel demonstration');
  267.   StatusLine('Esc aborts or press a key...');
  268.  
  269.   GetViewSettings(ViewInfo);
  270.   with ViewInfo do
  271.   begin
  272.     XMax := (x2-x1-1);
  273.     YMax := (y2-y1-1);
  274.   end;
  275.  
  276.   while not KeyPressed do
  277.   begin
  278.     { Plot random pixels }
  279.     RandSeed := Seed;
  280.     I := 0;
  281.     while (not KeyPressed) and (I < NumPts) do
  282.     begin
  283.       Inc(I);
  284.         PutPixel(Random(XMax)+1, Random(YMax)+1, RandColor);
  285.     end;
  286.  
  287.     { Erase pixels }
  288.     RandSeed := Seed;
  289.     I := 0;
  290.     while (not KeyPressed) and (I < NumPts) do
  291.     begin
  292.       Inc(I);
  293.       X := Random(XMax)+1;
  294.       Y := Random(YMax)+1;
  295.       Color := GetPixel(X, Y);
  296.         if Color = RandColor then
  297.           PutPixel(X, Y, 0);
  298.      end;
  299.   end;
  300.   WaitToGo;
  301. end; { PutPixelPlay }
  302.  
  303. procedure PutImagePlay;
  304. { Demonstrate the GetImage and PutImage commands }
  305.  
  306. const
  307.   r  = 20;
  308.   StartX = 100;
  309.   StartY = 50;
  310.  
  311. var
  312.   CurPort : ViewPortType;
  313.  
  314. procedure MoveSaucer(var X, Y : integer; Width, Height : integer);
  315. var
  316.   Step : integer;
  317. begin
  318.   Step := Random(2*r);
  319.   if Odd(Step) then
  320.     Step := -Step;
  321.   X := X + Step;
  322.   Step := Random(r);
  323.   if Odd(Step) then
  324.     Step := -Step;
  325.   Y := Y + Step;
  326.  
  327.   { Make saucer bounce off viewport walls }
  328.   with CurPort do
  329.   begin
  330.     if (x1 + X + Width - 1 > x2) then
  331.       X := x2-x1 - Width + 1
  332.     else
  333.       if (X < 0) then
  334.         X := 0;
  335.     if (y1 + Y + Height - 1 > y2) then
  336.       Y := y2-y1 - Height + 1
  337.     else
  338.       if (Y < 0) then
  339.         Y := 0;
  340.   end;
  341. end; { MoveSaucer }
  342.  
  343. var
  344.   Pausetime : word;
  345.   Saucer    : pointer;
  346.   X, Y      : integer;
  347.   ulx, uly  : word;
  348.   lrx, lry  : word;
  349.   Size      : word;
  350.   I         : word;
  351. begin
  352.   ClearDevice;
  353.   FullPort;
  354.  
  355.   { PaintScreen }
  356.   ClearDevice;
  357.   MainWindow('GetImage / PutImage Demonstration');
  358.   StatusLine('Esc aborts or press a key...');
  359.   GetViewSettings(CurPort);
  360.  
  361.   { DrawSaucer }
  362.   Ellipse(StartX, StartY, 0, 360, r, (r div 3)+2);
  363.   Ellipse(StartX, StartY-4, 190, 357, r, r div 3);
  364.   Line(StartX+7, StartY-6, StartX+10, StartY-12);
  365.   Circle(StartX+10, StartY-12, 2);
  366.   Line(StartX-7, StartY-6, StartX-10, StartY-12);
  367.   Circle(StartX-10, StartY-12, 2);
  368.   SetFillStyle(SolidFill, MaxColor);
  369.   FloodFill(StartX+1, StartY+4, GetColor);
  370.  
  371.   { ReadSaucerImage }
  372.   ulx := StartX-(r+1);
  373.   uly := StartY-14;
  374.   lrx := StartX+(r+1);
  375.   lry := StartY+(r div 3)+3;
  376.  
  377.   Size := ImageSize(ulx, uly, lrx, lry);
  378.   GetMem(Saucer, Size);
  379.   GetImage(ulx, uly, lrx, lry, Saucer^);
  380. {  PutImage(ulx, uly, Saucer^, XORput);               { erase image }
  381.  
  382.   { Plot some "stars" }
  383.   for I := 1 to 1000 do
  384.      PutPixel(Random(MaxX), Random(MaxY), RandColor);
  385.   X := MaxX div 2;
  386.   Y := MaxY div 2;
  387.   PauseTime := 70;
  388.  
  389.   { Move the saucer around }
  390.   repeat
  391. {     PutImage(X, Y, Saucer^, XORput);                 { draw image }
  392.      Delay(PauseTime);
  393. {     PutImage(X, Y, Saucer^, XORput);                 { erase image }
  394.      MoveSaucer(X, Y, lrx - ulx + 1, lry - uly + 1);  { width/height }
  395.   until KeyPressed;
  396.   FreeMem(Saucer, size);
  397.   WaitToGo;
  398. end; { PutImagePlay }
  399.  
  400. procedure PolyPlay;
  401. { Draw random polygons with random fill styles on the screen }
  402. const
  403.   MaxPts = 5;
  404. type
  405.   PolygonType = array[1..MaxPts] of PointType;
  406. var
  407.   Poly : PolygonType;
  408.   I, Color : word;
  409. begin
  410.   MainWindow('FillPoly demonstration');
  411.   StatusLine('Esc aborts or press a key...');
  412.   repeat
  413.     Color := RandColor;
  414.     SetFillStyle(Random(11)+1, Color);
  415.     SetColor(Color);
  416.     for I := 1 to MaxPts do
  417.       with Poly[I] do
  418.       begin
  419.         X := Random(MaxX);
  420.         Y := Random(MaxY);
  421.       end;
  422.     FillPoly(MaxPts, Poly);
  423.   until KeyPressed;
  424.   WaitToGo;
  425. end; { PolyPlay }
  426.  
  427. procedure FillStylePlay;
  428. { Display all of the predefined fill styles available }
  429. var
  430.   Style    : word;
  431.   Width    : word;
  432.   Height   : word;
  433.   X, Y     : word;
  434.   I, J     : word;
  435.   ViewInfo : ViewPortType;
  436.  
  437. procedure DrawBox(X, Y : word);
  438. begin
  439.   SetFillStyle(Style, MaxColor);
  440.   with ViewInfo do
  441.     Bar(X, Y, X+Width, Y+Height);
  442.   Rectangle(X, Y, X+Width, Y+Heig